﻿//
// *************************************************************************************
// WP-Framework
//
// Developed by 
// Lukas Kretschmar (lkretschmar.dev@bluewin.ch)
//
// Switzerland, Copyright (c) 2013 lkretschmar
// This content is released under the MIT License (http://opensource.org/licenses/MIT).
//     
// *************************************************************************************
//
//
			

using System;
using System.Linq.Expressions;
using System.Reflection;

namespace KretschIT.WP_Fx.EasyMoq
{
    public interface IHandler<T> where T : class
    {
        void Call(Expression<Action<T>> call);
        TResult Call<TResult>(Expression<Func<T, TResult>> call);

        TResult Get<TResult>(Expression<Func<T, TResult>> property);
        void Set<TResult>(Expression<Func<T, TResult>> property, TResult value);
        void Set<TResult>(Func<T, PropertyInfo> property, TResult value);
    }
}
